Fix ::reference typedef in insert iterators. Since at least the C++11 standard insert iterators are specified as having ::reference typedef void. Libc++ was not doing that. This patch corrects the typedef. This patch changes the std::iterator base class of insert_iterator, front_insert_iterator and back_insert_iterator. This should not be an ABI breaking change. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274209 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/iterator b/include/iterator index 9314d6a..c833200 100644 --- a/include/iterator +++ b/include/iterator
@@ -149,7 +149,7 @@ typedef Container container_type; typedef void value_type; typedef void difference_type; - typedef back_insert_iterator<Cont>& reference; + typedef void reference; typedef void pointer; explicit back_insert_iterator(Container& x); @@ -170,7 +170,7 @@ typedef Container container_type; typedef void value_type; typedef void difference_type; - typedef front_insert_iterator<Cont>& reference; + typedef void reference; typedef void pointer; explicit front_insert_iterator(Container& x); @@ -192,7 +192,7 @@ typedef Container container_type; typedef void value_type; typedef void difference_type; - typedef insert_iterator<Cont>& reference; + typedef void reference; typedef void pointer; insert_iterator(Container& x, typename Container::iterator i); @@ -663,7 +663,7 @@ void, void, void, - back_insert_iterator<_Container>&> + void> { protected: _Container* container; @@ -696,7 +696,7 @@ void, void, void, - front_insert_iterator<_Container>&> + void> { protected: _Container* container; @@ -729,7 +729,7 @@ void, void, void, - insert_iterator<_Container>&> + void> { protected: _Container* container;